#include<bits/stdc++.h>
using namespace std;
int n,m,a[510],b[510],flg[10],jl[10],sf[10];
long double ans=1e9;
void dfs1(int u){
	if(u>m){
		long double now=0,rs=1;
		for(int i=1;i<=m;i++){
			if(sf[i]) now+=1.0*b[jl[i]]/rs,rs+=1;
			else now+=1.0*a[jl[i]]/rs;
		}
		ans=min(ans,now);
		return;
	}
	sf[u]=1;
	dfs1(u+1);
	sf[u]=0;
	dfs1(u+1);
}
void dfs(int u){
	if(u>m){
		dfs1(1);
		return;
	}
	for(int i=1;i<=n;i++)
		if(!flg[i]){
			flg[i]=1,jl[u]=i;
			dfs(u+1);
			flg[i]=0;
		}
}
int main(){
	freopen("talk.in","r",stdin);
	freopen("talk.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
		scanf("%d%d",&a[i],&b[i]);
	if(n<=7){
		dfs(1);
		printf("%.10Lf",ans);
	}else{
		ans=0;
		sort(a+1,a+n+1);
		for(int i=1;i<=m;i++)
			ans+=a[i]/i;
		printf("%.10Lf",ans);
	}
	return 0;
}
